home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / oledlg.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-02-09  |  44.9 KB  |  1,123 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Runtime Library                          }
  5. {       Windows 32bit API Interface Unit                }
  6. {                                                       }
  7. {       Copyright (c) 1996,98 Borland International     }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. unit OleDlg;
  12.  
  13. {$WEAKPACKAGEUNIT}
  14.  
  15. interface
  16.  
  17. (*$HPPEMIT '' *)
  18. (*$HPPEMIT '#include <oledlg.h>' *)
  19. (*$HPPEMIT '' *)
  20.  
  21. uses Windows, CommCtrl, ActiveX;
  22.  
  23. const
  24.  
  25. { Help Button Identifier }
  26.  
  27.   {$EXTERNALSYM IDC_OLEUIHELP}
  28.   IDC_OLEUIHELP                   = 99;
  29.  
  30. { Insert Object Dialog identifiers }
  31.  
  32.   {$EXTERNALSYM IDC_IO_CREATENEW}
  33.   IDC_IO_CREATENEW                = 2100;
  34.   {$EXTERNALSYM IDC_IO_CREATEFROMFILE}
  35.   IDC_IO_CREATEFROMFILE           = 2101;
  36.   {$EXTERNALSYM IDC_IO_LINKFILE}
  37.   IDC_IO_LINKFILE                 = 2102;
  38.   {$EXTERNALSYM IDC_IO_OBJECTTYPELIST}
  39.   IDC_IO_OBJECTTYPELIST           = 2103;
  40.   {$EXTERNALSYM IDC_IO_DISPLAYASICON}
  41.   IDC_IO_DISPLAYASICON            = 2104;
  42.   {$EXTERNALSYM IDC_IO_CHANGEICON}
  43.   IDC_IO_CHANGEICON               = 2105;
  44.   {$EXTERNALSYM IDC_IO_FILE}
  45.   IDC_IO_FILE                     = 2106;
  46.   {$EXTERNALSYM IDC_IO_FILEDISPLAY}
  47.   IDC_IO_FILEDISPLAY              = 2107;
  48.   {$EXTERNALSYM IDC_IO_RESULTIMAGE}
  49.   IDC_IO_RESULTIMAGE              = 2108;
  50.   {$EXTERNALSYM IDC_IO_RESULTTEXT}
  51.   IDC_IO_RESULTTEXT               = 2109;
  52.   {$EXTERNALSYM IDC_IO_ICONDISPLAY}
  53.   IDC_IO_ICONDISPLAY              = 2110;
  54.   {$EXTERNALSYM IDC_IO_OBJECTTYPETEXT}
  55.   IDC_IO_OBJECTTYPETEXT           = 2111;
  56.   {$EXTERNALSYM IDC_IO_FILETEXT}
  57.   IDC_IO_FILETEXT                 = 2112;
  58.   {$EXTERNALSYM IDC_IO_FILETYPE}
  59.   IDC_IO_FILETYPE                 = 2113;
  60.   {$EXTERNALSYM IDC_IO_INSERTCONTROL}
  61.   IDC_IO_INSERTCONTROL            = 2114;
  62.   {$EXTERNALSYM IDC_IO_ADDCONTROL}
  63.   IDC_IO_ADDCONTROL               = 2115;
  64.   {$EXTERNALSYM IDC_IO_CONTROLTYPELIST}
  65.   IDC_IO_CONTROLTYPELIST          = 2116;
  66.  
  67. { Paste Special Dialog identifiers }
  68.  
  69.   {$EXTERNALSYM IDC_PS_PASTE}
  70.   IDC_PS_PASTE                    = 500;
  71.   {$EXTERNALSYM IDC_PS_PASTELINK}
  72.   IDC_PS_PASTELINK                = 501;
  73.   {$EXTERNALSYM IDC_PS_SOURCETEXT}
  74.   IDC_PS_SOURCETEXT               = 502;
  75.   {$EXTERNALSYM IDC_PS_PASTELIST}
  76.   IDC_PS_PASTELIST                = 503;
  77.   {$EXTERNALSYM IDC_PS_PASTELINKLIST}
  78.   IDC_PS_PASTELINKLIST            = 504;
  79.   {$EXTERNALSYM IDC_PS_DISPLAYLIST}
  80.   IDC_PS_DISPLAYLIST              = 505;
  81.   {$EXTERNALSYM IDC_PS_DISPLAYASICON}
  82.   IDC_PS_DISPLAYASICON            = 506;
  83.   {$EXTERNALSYM IDC_PS_ICONDISPLAY}
  84.   IDC_PS_ICONDISPLAY              = 507;
  85.   {$EXTERNALSYM IDC_PS_CHANGEICON}
  86.   IDC_PS_CHANGEICON               = 508;
  87.   {$EXTERNALSYM IDC_PS_RESULTIMAGE}
  88.   IDC_PS_RESULTIMAGE              = 509;
  89.   {$EXTERNALSYM IDC_PS_RESULTTEXT}
  90.   IDC_PS_RESULTTEXT               = 510;
  91.  
  92. { Change Icon Dialog identifiers }
  93.  
  94.   {$EXTERNALSYM IDC_CI_GROUP}
  95.   IDC_CI_GROUP                    = 120;
  96.   {$EXTERNALSYM IDC_CI_CURRENT}
  97.   IDC_CI_CURRENT                  = 121;
  98.   {$EXTERNALSYM IDC_CI_CURRENTICON}
  99.   IDC_CI_CURRENTICON              = 122;
  100.   {$EXTERNALSYM IDC_CI_DEFAULT}
  101.   IDC_CI_DEFAULT                  = 123;
  102.   {$EXTERNALSYM IDC_CI_DEFAULTICON}
  103.   IDC_CI_DEFAULTICON              = 124;
  104.   {$EXTERNALSYM IDC_CI_FROMFILE}
  105.   IDC_CI_FROMFILE                 = 125;
  106.   {$EXTERNALSYM IDC_CI_FROMFILEEDIT}
  107.   IDC_CI_FROMFILEEDIT             = 126;
  108.   {$EXTERNALSYM IDC_CI_ICONLIST}
  109.   IDC_CI_ICONLIST                 = 127;
  110.   {$EXTERNALSYM IDC_CI_LABEL}
  111.   IDC_CI_LABEL                    = 128;
  112.   {$EXTERNALSYM IDC_CI_LABELEDIT}
  113.   IDC_CI_LABELEDIT                = 129;
  114.   {$EXTERNALSYM IDC_CI_BROWSE}
  115.   IDC_CI_BROWSE                   = 130;
  116.   {$EXTERNALSYM IDC_CI_ICONDISPLAY}
  117.   IDC_CI_ICONDISPLAY              = 131;
  118.  
  119. { Convert Dialog identifiers }
  120.  
  121.   {$EXTERNALSYM IDC_CV_OBJECTTYPE}
  122.   IDC_CV_OBJECTTYPE               = 150;
  123.   {$EXTERNALSYM IDC_CV_DISPLAYASICON}
  124.   IDC_CV_DISPLAYASICON            = 152;
  125.   {$EXTERNALSYM IDC_CV_CHANGEICON}
  126.   IDC_CV_CHANGEICON               = 153;
  127.   {$EXTERNALSYM IDC_CV_ACTIVATELIST}
  128.   IDC_CV_ACTIVATELIST             = 154;
  129.   {$EXTERNALSYM IDC_CV_CONVERTTO}
  130.   IDC_CV_CONVERTTO                = 155;
  131.   {$EXTERNALSYM IDC_CV_ACTIVATEAS}
  132.   IDC_CV_ACTIVATEAS               = 156;
  133.   {$EXTERNALSYM IDC_CV_RESULTTEXT}
  134.   IDC_CV_RESULTTEXT               = 157;
  135.   {$EXTERNALSYM IDC_CV_CONVERTLIST}
  136.   IDC_CV_CONVERTLIST              = 158;
  137.   {$EXTERNALSYM IDC_CV_ICONDISPLAY}
  138.   IDC_CV_ICONDISPLAY              = 165;
  139.  
  140. { Edit Links Dialog identifiers }
  141.  
  142.   {$EXTERNALSYM IDC_EL_CHANGESOURCE}
  143.   IDC_EL_CHANGESOURCE             = 201;
  144.   {$EXTERNALSYM IDC_EL_AUTOMATIC}
  145.   IDC_EL_AUTOMATIC                = 202;
  146.   {$EXTERNALSYM IDC_EL_CANCELLINK}
  147.   IDC_EL_CANCELLINK               = 209;
  148.   {$EXTERNALSYM IDC_EL_UPDATENOW}
  149.   IDC_EL_UPDATENOW                = 210;
  150.   {$EXTERNALSYM IDC_EL_OPENSOURCE}
  151.   IDC_EL_OPENSOURCE               = 211;
  152.   {$EXTERNALSYM IDC_EL_MANUAL}
  153.   IDC_EL_MANUAL                   = 212;
  154.   {$EXTERNALSYM IDC_EL_LINKSOURCE}
  155.   IDC_EL_LINKSOURCE               = 216;
  156.   {$EXTERNALSYM IDC_EL_LINKTYPE}
  157.   IDC_EL_LINKTYPE                 = 217;
  158.   {$EXTERNALSYM IDC_EL_LINKSLISTBOX}
  159.   IDC_EL_LINKSLISTBOX             = 206;
  160.   {$EXTERNALSYM IDC_EL_COL1}
  161.   IDC_EL_COL1                     = 220;
  162.   {$EXTERNALSYM IDC_EL_COL2}
  163.   IDC_EL_COL2                     = 221;
  164.   {$EXTERNALSYM IDC_EL_COL3}
  165.   IDC_EL_COL3                     = 222;
  166.  
  167. { Busy dialog identifiers }
  168.  
  169.   {$EXTERNALSYM IDC_BZ_RETRY}
  170.   IDC_BZ_RETRY                    = 600;
  171.   {$EXTERNALSYM IDC_BZ_ICON}
  172.   IDC_BZ_ICON                     = 601;
  173.   {$EXTERNALSYM IDC_BZ_MESSAGE1}
  174.   IDC_BZ_MESSAGE1                 = 602;
  175.   {$EXTERNALSYM IDC_BZ_SWITCHTO}
  176.   IDC_BZ_SWITCHTO                 = 604;
  177.  
  178. { Update Links dialog identifiers }
  179.  
  180.   {$EXTERNALSYM IDC_UL_METER}
  181.   IDC_UL_METER                    = 1029;
  182.   {$EXTERNALSYM IDC_UL_STOP}
  183.   IDC_UL_STOP                     = 1030;
  184.   {$EXTERNALSYM IDC_UL_PERCENT}
  185.   IDC_UL_PERCENT                  = 1031;
  186.   {$EXTERNALSYM IDC_UL_PROGRESS}
  187.   IDC_UL_PROGRESS                 = 1032;
  188.  
  189. { User Prompt dialog identifiers }
  190.  
  191.   {$EXTERNALSYM IDC_PU_LINKS}
  192.   IDC_PU_LINKS                    = 900;
  193.   {$EXTERNALSYM IDC_PU_TEXT}
  194.   IDC_PU_TEXT                     = 901;
  195.   {$EXTERNALSYM IDC_PU_CONVERT}
  196.   IDC_PU_CONVERT                  = 902;
  197.   {$EXTERNALSYM IDC_PU_ICON}
  198.   IDC_PU_ICON                     = 908;
  199.  
  200. { General Properties identifiers }
  201.  
  202.   {$EXTERNALSYM IDC_GP_OBJECTNAME}
  203.   IDC_GP_OBJECTNAME               = 1009;
  204.   {$EXTERNALSYM IDC_GP_OBJECTTYPE}
  205.   IDC_GP_OBJECTTYPE               = 1010;
  206.   {$EXTERNALSYM IDC_GP_OBJECTSIZE}
  207.   IDC_GP_OBJECTSIZE               = 1011;
  208.   {$EXTERNALSYM IDC_GP_CONVERT}
  209.   IDC_GP_CONVERT                  = 1013;
  210.   {$EXTERNALSYM IDC_GP_OBJECTICON}
  211.   IDC_GP_OBJECTICON               = 1014;
  212.   {$EXTERNALSYM IDC_GP_OBJECTLOCATION}
  213.   IDC_GP_OBJECTLOCATION           = 1022;
  214.  
  215. { View Properties identifiers }
  216.  
  217.   {$EXTERNALSYM IDC_VP_PERCENT}
  218.   IDC_VP_PERCENT                  = 1000;
  219.   {$EXTERNALSYM IDC_VP_CHANGEICON}
  220.   IDC_VP_CHANGEICON               = 1001;
  221.   {$EXTERNALSYM IDC_VP_EDITABLE}
  222.   IDC_VP_EDITABLE                 = 1002;
  223.   {$EXTERNALSYM IDC_VP_ASICON}
  224.   IDC_VP_ASICON                   = 1003;
  225.   {$EXTERNALSYM IDC_VP_RELATIVE}
  226.   IDC_VP_RELATIVE                 = 1005;
  227.   {$EXTERNALSYM IDC_VP_SPIN}
  228.   IDC_VP_SPIN                     = 1006;
  229.   {$EXTERNALSYM IDC_VP_SCALETXT}
  230.   IDC_VP_SCALETXT                 = 1034;
  231.   {$EXTERNALSYM IDC_VP_ICONDISPLAY}
  232.   IDC_VP_ICONDISPLAY              = 1021;
  233.   {$EXTERNALSYM IDC_VP_RESULTIMAGE}
  234.   IDC_VP_RESULTIMAGE              = 1033;
  235.  
  236. { Link Properties identifiers }
  237.  
  238.   {$EXTERNALSYM IDC_LP_OPENSOURCE}
  239.   IDC_LP_OPENSOURCE               = 1006;
  240.   {$EXTERNALSYM IDC_LP_UPDATENOW}
  241.   IDC_LP_UPDATENOW                = 1007;
  242.   {$EXTERNALSYM IDC_LP_BREAKLINK}
  243.   IDC_LP_BREAKLINK                = 1008;
  244.   {$EXTERNALSYM IDC_LP_LINKSOURCE}
  245.   IDC_LP_LINKSOURCE               = 1012;
  246.   {$EXTERNALSYM IDC_LP_CHANGESOURCE}
  247.   IDC_LP_CHANGESOURCE             = 1015;
  248.   {$EXTERNALSYM IDC_LP_AUTOMATIC}
  249.   IDC_LP_AUTOMATIC                = 1016;
  250.   {$EXTERNALSYM IDC_LP_MANUAL}
  251.   IDC_LP_MANUAL                   = 1017;
  252.   {$EXTERNALSYM IDC_LP_DATE}
  253.   IDC_LP_DATE                     = 1018;
  254.   {$EXTERNALSYM IDC_LP_TIME}
  255.   IDC_LP_TIME                     = 1019;
  256.  
  257. { Dialog Identifiers as passed in Help messages to identify the source }
  258.  
  259.   {$EXTERNALSYM IDD_INSERTOBJECT}
  260.   IDD_INSERTOBJECT                = 1000;
  261.   {$EXTERNALSYM IDD_CHANGEICON}
  262.   IDD_CHANGEICON                  = 1001;
  263.   {$EXTERNALSYM IDD_CONVERT}
  264.   IDD_CONVERT                     = 1002;
  265.   {$EXTERNALSYM IDD_PASTESPECIAL}
  266.   IDD_PASTESPECIAL                = 1003;
  267.   {$EXTERNALSYM IDD_EDITLINKS}
  268.   IDD_EDITLINKS                   = 1004;
  269.   {$EXTERNALSYM IDD_BUSY}
  270.   IDD_BUSY                        = 1006;
  271.   {$EXTERNALSYM IDD_UPDATELINKS}
  272.   IDD_UPDATELINKS                 = 1007;
  273.   {$EXTERNALSYM IDD_CHANGESOURCE}
  274.   IDD_CHANGESOURCE                = 1009;
  275.   {$EXTERNALSYM IDD_INSERTFILEBROWSE}
  276.   IDD_INSERTFILEBROWSE            = 1010;
  277.   {$EXTERNALSYM IDD_CHANGEICONBROWSE}
  278.   IDD_CHANGEICONBROWSE            = 1011;
  279.   {$EXTERNALSYM IDD_CONVERTONLY}
  280.   IDD_CONVERTONLY                 = 1012;
  281.   {$EXTERNALSYM IDD_CHANGESOURCE4}
  282.   IDD_CHANGESOURCE4               = 1013;
  283.   {$EXTERNALSYM IDD_GNRLPROPS}
  284.   IDD_GNRLPROPS                   = 1100;
  285.   {$EXTERNALSYM IDD_VIEWPROPS}
  286.   IDD_VIEWPROPS                   = 1101;
  287.   {$EXTERNALSYM IDD_LINKPROPS}
  288.   IDD_LINKPROPS                   = 1102;
  289.  
  290. { The following Dialogs are message dialogs used by OleUIPromptUser API }
  291.  
  292.   {$EXTERNALSYM IDD_CANNOTUPDATELINK}
  293.   IDD_CANNOTUPDATELINK            = 1008;
  294.   {$EXTERNALSYM IDD_LINKSOURCEUNAVAILABLE}
  295.   IDD_LINKSOURCEUNAVAILABLE       = 1020;
  296.   {$EXTERNALSYM IDD_SERVERNOTFOUND}
  297.   IDD_SERVERNOTFOUND              = 1023;
  298.   {$EXTERNALSYM IDD_OUTOFMEMORY}
  299.   IDD_OUTOFMEMORY                 = 1024;
  300.   {$EXTERNALSYM IDD_SERVERNOTREG}
  301.   IDD_SERVERNOTREG                = 1021;
  302.   {$EXTERNALSYM IDD_LINKTYPECHANGED}
  303.   IDD_LINKTYPECHANGED             = 1022;
  304.  
  305. { Delimeter used to separate ItemMoniker pieces of a composite moniker }
  306.  
  307.   {$EXTERNALSYM OLESTDDELIM}
  308.   OLESTDDELIM = '\';
  309.  
  310. { Strings for registered messages }
  311.  
  312.   {$EXTERNALSYM SZOLEUI_MSG_HELP}
  313.   SZOLEUI_MSG_HELP                = 'OLEUI_MSG_HELP';
  314.   {$EXTERNALSYM SZOLEUI_MSG_ENDDIALOG}
  315.   SZOLEUI_MSG_ENDDIALOG           = 'OLEUI_MSG_ENDDIALOG';
  316.   {$EXTERNALSYM SZOLEUI_MSG_BROWSE}
  317.   SZOLEUI_MSG_BROWSE              = 'OLEUI_MSG_BROWSE';
  318.   {$EXTERNALSYM SZOLEUI_MSG_CHANGEICON}
  319.   SZOLEUI_MSG_CHANGEICON          = 'OLEUI_MSG_CHANGEICON';
  320.   {$EXTERNALSYM SZOLEUI_MSG_CLOSEBUSYDIALOG}
  321.   SZOLEUI_MSG_CLOSEBUSYDIALOG     = 'OLEUI_MSG_CLOSEBUSYDIALOG';
  322.   {$EXTERNALSYM SZOLEUI_MSG_CONVERT}
  323.   SZOLEUI_MSG_CONVERT             = 'OLEUI_MSG_CONVERT';
  324.   {$EXTERNALSYM SZOLEUI_MSG_CHANGESOURCE}
  325.   SZOLEUI_MSG_CHANGESOURCE        = 'OLEUI_MSG_CHANGESOURCE';
  326.   {$EXTERNALSYM SZOLEUI_MSG_ADDCONTROL}
  327.   SZOLEUI_MSG_ADDCONTROL          = 'OLEUI_MSG_ADDCONTROL';
  328.   {$EXTERNALSYM SZOLEUI_MSG_BROWSE_OFN}
  329.   SZOLEUI_MSG_BROWSE_OFN          = 'OLEUI_MSG_BROWSE_OFN';
  330.  
  331. { Identifiers for SZOLEUI_MSG_BROWSE_OFN (in wParam) }
  332.  
  333.   {$EXTERNALSYM ID_BROWSE_CHANGEICON}
  334.   ID_BROWSE_CHANGEICON            = 1;
  335.   {$EXTERNALSYM ID_BROWSE_INSERTFILE}
  336.   ID_BROWSE_INSERTFILE            = 2;
  337.   {$EXTERNALSYM ID_BROWSE_ADDCONTROL}
  338.   ID_BROWSE_ADDCONTROL            = 3;
  339.   {$EXTERNALSYM ID_BROWSE_CHANGESOURCE}
  340.   ID_BROWSE_CHANGESOURCE          = 4;
  341.  
  342. { Standard success/error definitions }
  343.  
  344.   {$EXTERNALSYM OLEUI_FALSE}
  345.   OLEUI_FALSE                     = 0;
  346.   {$EXTERNALSYM OLEUI_SUCCESS}
  347.   OLEUI_SUCCESS                   = 1;   { No error, same as OLEUI_OK }
  348.   {$EXTERNALSYM OLEUI_OK}
  349.   OLEUI_OK                        = 1;   { OK button pressed }
  350.   {$EXTERNALSYM OLEUI_CANCEL}
  351.   OLEUI_CANCEL                    = 2;   { Cancel button pressed }
  352.  
  353.   {$EXTERNALSYM OLEUI_ERR_STANDARDMIN}
  354.   OLEUI_ERR_STANDARDMIN           = 100;
  355.   {$EXTERNALSYM OLEUI_ERR_STRUCTURENULL}
  356.   OLEUI_ERR_STRUCTURENULL         = 101; { Standard field validation }
  357.   {$EXTERNALSYM OLEUI_ERR_STRUCTUREINVALID}
  358.   OLEUI_ERR_STRUCTUREINVALID      = 102;
  359.   {$EXTERNALSYM OLEUI_ERR_CBSTRUCTINCORRECT}
  360.   OLEUI_ERR_CBSTRUCTINCORRECT     = 103;
  361.   {$EXTERNALSYM OLEUI_ERR_HWNDOWNERINVALID}
  362.   OLEUI_ERR_HWNDOWNERINVALID      = 104;
  363.   {$EXTERNALSYM OLEUI_ERR_LPSZCAPTIONINVALID}
  364.   OLEUI_ERR_LPSZCAPTIONINVALID    = 105;
  365.   {$EXTERNALSYM OLEUI_ERR_LPFNHOOKINVALID}
  366.   OLEUI_ERR_LPFNHOOKINVALID       = 106;
  367.   {$EXTERNALSYM OLEUI_ERR_HINSTANCEINVALID}
  368.   OLEUI_ERR_HINSTANCEINVALID      = 107;
  369.   {$EXTERNALSYM OLEUI_ERR_LPSZTEMPLATEINVALID}
  370.   OLEUI_ERR_LPSZTEMPLATEINVALID   = 108;
  371.   {$EXTERNALSYM OLEUI_ERR_HRESOURCEINVALID}
  372.   OLEUI_ERR_HRESOURCEINVALID      = 109;
  373.  
  374.   {$EXTERNALSYM OLEUI_ERR_FINDTEMPLATEFAILURE}
  375.   OLEUI_ERR_FINDTEMPLATEFAILURE   = 110; { Initialization errors }
  376.   {$EXTERNALSYM OLEUI_ERR_LOADTEMPLATEFAILURE}
  377.   OLEUI_ERR_LOADTEMPLATEFAILURE   = 111;
  378.   {$EXTERNALSYM OLEUI_ERR_DIALOGFAILURE}
  379.   OLEUI_ERR_DIALOGFAILURE         = 112;
  380.   {$EXTERNALSYM OLEUI_ERR_LOCALMEMALLOC}
  381.   OLEUI_ERR_LOCALMEMALLOC         = 113;
  382.   {$EXTERNALSYM OLEUI_ERR_GLOBALMEMALLOC}
  383.   OLEUI_ERR_GLOBALMEMALLOC        = 114;
  384.   {$EXTERNALSYM OLEUI_ERR_LOADSTRING}
  385.   OLEUI_ERR_LOADSTRING            = 115;
  386.   {$EXTERNALSYM OLEUI_ERR_OLEMEMALLOC}
  387.   OLEUI_ERR_OLEMEMALLOC           = 116;
  388.  
  389.   {$EXTERNALSYM OLEUI_ERR_STANDARDMAX}
  390.   OLEUI_ERR_STANDARDMAX           = 117; { Start here for specific errors }
  391.  
  392. { Hook type used in all structures }
  393.  
  394. type
  395.   TFNOleUIHook = function(Wnd: HWnd; Msg, WParam, LParam: Longint): Longint stdcall;
  396.  
  397. { Miscellaneous utility functions }
  398.  
  399. function OleUIAddVerbMenu(oleObj: IOleObject; pszShortType: PChar;
  400.   menu: HMenu; uPos: Integer; uIDVerbMin: Integer; uIDVerbMax: Integer;
  401.   bAddConvert: BOOL; idConvert: Integer; var outMenu: HMenu): BOOL; stdcall;
  402.  
  403. { **** Insert Object dialog **** }
  404.  
  405. { Insert object dialog structure }
  406.  
  407. type
  408.   POleUIInsertObject = ^TOleUIInsertObject;
  409.   {$EXTERNALSYM tagOLEUIINSERTOBJECTA}
  410.   tagOLEUIINSERTOBJECTA = record
  411.     cbStruct: Longint;                  { Structure Size }
  412.     dwFlags: Longint;                   { IN-OUT: Flags }
  413.     hWndOwner: HWnd;                    { Owning window }
  414.     lpszCaption: PChar;                 { Dialog caption bar contents }
  415.     lpfnHook: TFNOleUIHook;             { Hook callback }
  416.     lCustData: Longint;                 { Custom data to pass to hook }
  417.     hInstance: THandle;                 { Instance for customized template name }
  418.     lpszTemplate: PChar;                { Customized template name }
  419.     hResource: HRsrc;                   { Customized template handle }
  420.     clsid: TCLSID;                      { OUT: Return space for class ID }
  421.     lpszFile: PChar;                    { IN-OUT: Filename for inserts or links }
  422.     cchFile: Integer;                   { IN: Size of lpszFile buffer: MAX_PATH }
  423.     cClsidExclude: Integer;             { IN: CLSIDs in lpClsidExclude }
  424.     lpClsidExclude: PCLSID;             { IN: List of CLSIDs to exclude from listing }
  425.     iid: TIID;                          { IN: Requested interface on creation }
  426.     oleRender: Longint;                 { IN: Rendering option }
  427.     lpFormatEtc: PFormatEtc;            { IN: Desired format }
  428.     lpIOleClientSite: IOleClientSite;   { IN: Site to be use for the object }
  429.     lpIStorage: IStorage;               { IN: Storage used for the object }
  430.     ppvObj: Pointer;                    { OUT: Where the object is returned }
  431.     sc: HResult;                        { OUT: Result of creation calls }
  432.     hMetaPict: HGlobal;                 { OUT: metafile aspect (METAFILEPICT) }
  433.   end;
  434.   TOleUIInsertObject = tagOLEUIINSERTOBJECTA;
  435.  
  436. { Insert object dialog function }
  437.  
  438. function OleUIInsertObject(var Info: TOleUIInsertObject): Integer; stdcall;
  439.  
  440. { Insert Object flags }
  441.  
  442. const
  443.   {$EXTERNALSYM IOF_SHOWHELP}
  444.   IOF_SHOWHELP                    = $00000001;
  445.   {$EXTERNALSYM IOF_SELECTCREATENEW}
  446.   IOF_SELECTCREATENEW             = $00000002;
  447.   {$EXTERNALSYM IOF_SELECTCREATEFROMFILE}
  448.   IOF_SELECTCREATEFROMFILE        = $00000004;
  449.   {$EXTERNALSYM IOF_CHECKLINK}
  450.   IOF_CHECKLINK                   = $00000008;
  451.   {$EXTERNALSYM IOF_CHECKDISPLAYASICON}
  452.   IOF_CHECKDISPLAYASICON          = $00000010;
  453.   {$EXTERNALSYM IOF_CREATENEWOBJECT}
  454.   IOF_CREATENEWOBJECT             = $00000020;
  455.   {$EXTERNALSYM IOF_CREATEFILEOBJECT}
  456.   IOF_CREATEFILEOBJECT            = $00000040;
  457.   {$EXTERNALSYM IOF_CREATELINKOBJECT}
  458.   IOF_CREATELINKOBJECT            = $00000080;
  459.   {$EXTERNALSYM IOF_DISABLELINK}
  460.   IOF_DISABLELINK                 = $00000100;
  461.   {$EXTERNALSYM IOF_VERIFYSERVERSEXIST}
  462.   IOF_VERIFYSERVERSEXIST          = $00000200;
  463.   {$EXTERNALSYM IOF_DISABLEDISPLAYASICON}
  464.   IOF_DISABLEDISPLAYASICON        = $00000400;
  465.   {$EXTERNALSYM IOF_HIDECHANGEICON}
  466.   IOF_HIDECHANGEICON              = $00000800;
  467.   {$EXTERNALSYM IOF_SHOWINSERTCONTROL}
  468.   IOF_SHOWINSERTCONTROL           = $00001000;
  469.   {$EXTERNALSYM IOF_SELECTCREATECONTROL}
  470.   IOF_SELECTCREATECONTROL         = $00002000;
  471.  
  472. { Insert Object specific error codes }
  473.  
  474. const
  475.   {$EXTERNALSYM OLEUI_IOERR_LPSZFILEINVALID}
  476.   OLEUI_IOERR_LPSZFILEINVALID         = OLEUI_ERR_STANDARDMAX + 0;
  477.   {$EXTERNALSYM OLEUI_IOERR_LPSZLABELINVALID}
  478.   OLEUI_IOERR_LPSZLABELINVALID        = OLEUI_ERR_STANDARDMAX + 1;
  479.   {$EXTERNALSYM OLEUI_IOERR_HICONINVALID}
  480.   OLEUI_IOERR_HICONINVALID            = OLEUI_ERR_STANDARDMAX + 2;
  481.   {$EXTERNALSYM OLEUI_IOERR_LPFORMATETCINVALID}
  482.   OLEUI_IOERR_LPFORMATETCINVALID      = OLEUI_ERR_STANDARDMAX + 3;
  483.   {$EXTERNALSYM OLEUI_IOERR_PPVOBJINVALID}
  484.   OLEUI_IOERR_PPVOBJINVALID           = OLEUI_ERR_STANDARDMAX + 4;
  485.   {$EXTERNALSYM OLEUI_IOERR_LPIOLECLIENTSITEINVALID}
  486.   OLEUI_IOERR_LPIOLECLIENTSITEINVALID = OLEUI_ERR_STANDARDMAX + 5;
  487.   {$EXTERNALSYM OLEUI_IOERR_LPISTORAGEINVALID}
  488.   OLEUI_IOERR_LPISTORAGEINVALID       = OLEUI_ERR_STANDARDMAX + 6;
  489.   {$EXTERNALSYM OLEUI_IOERR_SCODEHASERROR}
  490.   OLEUI_IOERR_SCODEHASERROR           = OLEUI_ERR_STANDARDMAX + 7;
  491.   {$EXTERNALSYM OLEUI_IOERR_LPCLSIDEXCLUDEINVALID}
  492.   OLEUI_IOERR_LPCLSIDEXCLUDEINVALID   = OLEUI_ERR_STANDARDMAX + 8;
  493.   {$EXTERNALSYM OLEUI_IOERR_CCHFILEINVALID}
  494.   OLEUI_IOERR_CCHFILEINVALID          = OLEUI_ERR_STANDARDMAX + 9;
  495.  
  496. { **** Paste Special dialog **** }
  497.  
  498. { The OLEUIPASTE_xxx values are used by the TOleUIPasteEntry structure.
  499.  
  500.   OLEUIPASTE_ENABLEICON: If the container does not specify this flag for
  501.        the entry in the TOleUIPasteEntry array passed as input to
  502.        OleUIPasteSpecial, the DisplayAsIcon button will be unchecked and
  503.        disabled when the the user selects the format that corresponds to
  504.        the entry.
  505.  
  506.   OLEUIPASTE_PASTEONLY: Indicates that the entry in the TOleUIPasteEntry
  507.        array is valid for pasting only.
  508.  
  509.   OLEUIPASTE_PASTE: Indicates that the entry in the TOleUIPasteEntry array
  510.        is valid for pasting. It may also be valid for linking if any of
  511.        the following linking flags are specified.
  512.  
  513.   If the entry in the TOleUIPasteEntry array is valid for linking, the
  514.   following flags indicate which link types are acceptable by OR'ing
  515.   together the appropriate OLEUIPASTE_LINKTYPE<#> values.
  516.  
  517.   These values correspond as follows to the array of link types passed to
  518.   OleUIPasteSpecial:
  519.  
  520.     OLEUIPASTE_LINKTYPE1 = arrLinkTypes[0]
  521.     OLEUIPASTE_LINKTYPE2 = arrLinkTypes[1]
  522.     OLEUIPASTE_LINKTYPE3 = arrLinkTypes[2]
  523.     OLEUIPASTE_LINKTYPE4 = arrLinkTypes[3]
  524.     OLEUIPASTE_LINKTYPE5 = arrLinkTypes[4]
  525.     OLEUIPASTE_LINKTYPE6 = arrLinkTypes[5]
  526.     OLEUIPASTE_LINKTYPE7 = arrLinkTypes[6]
  527.     OLEUIPASTE_LINKTYPE8 = arrLinkTypes[7]
  528.  
  529.   where,
  530.     UINT arrLinkTypes[8] is an array of registered clipboard formats for
  531.     linking. A maximium of 8 link types are allowed. }
  532.  
  533. const
  534.   {$EXTERNALSYM OLEUIPASTE_ENABLEICON}
  535.   OLEUIPASTE_ENABLEICON    = 2048;  { enable display as icon }
  536.   {$EXTERNALSYM OLEUIPASTE_PASTEONLY}
  537.   OLEUIPASTE_PASTEONLY     = 0;
  538.   {$EXTERNALSYM OLEUIPASTE_PASTE}
  539.   OLEUIPASTE_PASTE         = 512;
  540.   {$EXTERNALSYM OLEUIPASTE_LINKANYTYPE}
  541.   OLEUIPASTE_LINKANYTYPE   = 1024;
  542.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE1}
  543.   OLEUIPASTE_LINKTYPE1     = 1;
  544.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE2}
  545.   OLEUIPASTE_LINKTYPE2     = 2;
  546.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE3}
  547.   OLEUIPASTE_LINKTYPE3     = 4;
  548.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE4}
  549.   OLEUIPASTE_LINKTYPE4     = 8;
  550.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE5}
  551.   OLEUIPASTE_LINKTYPE5     = 16;
  552.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE6}
  553.   OLEUIPASTE_LINKTYPE6     = 32;
  554.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE7}
  555.   OLEUIPASTE_LINKTYPE7     = 64;
  556.   {$EXTERNALSYM OLEUIPASTE_LINKTYPE8}
  557.   OLEUIPASTE_LINKTYPE8     = 128;
  558.  
  559. { TOleUIPasteEntry structure
  560.  
  561.   An array of TOleUIPasteEntry entries is specified for the PasteSpecial
  562.   dialog box. Each entry includes a TFormatEtc which specifies the
  563.   formats that are acceptable, a string that is to represent the format
  564.   in the  dialog's list box, a string to customize the result text of the
  565.   dialog and a set of flags from the OLEUIPASTE_xxx constants.  The
  566.   flags indicate if the entry is valid for pasting only, linking only or
  567.   both pasting and linking. }
  568.  
  569. type
  570.   POleUIPasteEntry = ^TOleUIPasteEntry;
  571.   {$EXTERNALSYM tagOLEUIPASTEENTRYA}
  572.   tagOLEUIPASTEENTRYA = record
  573.     fmtetc: TFormatEtc;         { Format that is acceptable }
  574.     lpstrFormatName: PChar;     { String that represents the format
  575.                                   to the user. %s is replaced by the
  576.                                   full user type name of the object }
  577.     lpstrResultText: PChar;     { String to customize the result text
  578.                                   of the dialog when the user
  579.                                   selects the format correspoding to
  580.                                   this entry. Any %s in this string
  581.                                   is replaced by the the application
  582.                                   name or FullUserTypeName of the
  583.                                   object on the clipboard }
  584.     dwFlags: Longint;           { Values from OLEUIPASTE_xxx set }
  585.     dwScratchSpace: Longint;    { Scratch space used internally }
  586.   end;
  587.   TOleUIPasteEntry = tagOLEUIPASTEENTRYA;
  588.   {$EXTERNALSYM OLEUIPASTEENTRY}
  589.   OLEUIPASTEENTRY = tagOLEUIPASTEENTRYA;
  590.  
  591. { Maximum number of link types }
  592.  
  593. const
  594.   {$EXTERNALSYM PS_MAXLINKTYPES}
  595.   PS_MAXLINKTYPES = 8;
  596.  
  597. type
  598.   POleUIPasteSpecial = ^TOleUIPasteSpecial;
  599.   {$EXTERNALSYM tagOLEUIPASTESPECIALA}
  600.   tagOLEUIPASTESPECIALA = record
  601.     cbStruct: Longint;                  { Structure Size }
  602.     dwFlags: Longint;                   { IN-OUT: Flags }
  603.     hWndOwner: HWnd;                    { Owning window }
  604.     lpszCaption: PChar;                 { Dialog caption bar contents }
  605.     lpfnHook: TFNOleUIHook;             { Hook callback }
  606.     lCustData: Longint;                 { Custom data to pass to hook }
  607.     hInstance: THandle;                 { Instance for customized template name }
  608.     lpszTemplate: PChar;                { Customized template name }
  609.     hResource: HRsrc;                   { Customized template handle }
  610.     lpSrcDataObj: IDataObject;          { IN-OUT: Source IDataObject on the clipboard }
  611.     arrPasteEntries: POleUIPasteEntry;  { IN: Array of acceptable formats }
  612.     cPasteEntries: Integer;             { IN: No. of TOleUIPasteEntry array entries }
  613.     arrLinkTypes: PLongint;             { IN: List of acceptable link types }
  614.     cLinkTypes: Integer;                { IN: Number of link types }
  615.     cClsidExclude: Integer;             { IN: Number of CLSIDs in lpClsidExclude }
  616.     lpClsidExclude: PCLSID;             { IN: List of CLSIDs to exclude from list }
  617.     nSelectedIndex: Integer;            { OUT: Index that the user selected }
  618.     fLink: BOOL;                        { OUT: Indicates if Paste or PasteLink }
  619.     hMetaPict: HGlobal;                 { OUT: Handle to Metafile containing icon }
  620.     sizel: TSize;                       { OUT: size of object/link in its source
  621.                                           may be 0,0 if different display
  622.                                           aspect is chosen }
  623.   end;
  624.   TOleUIPasteSpecial = tagOLEUIPASTESPECIALA;
  625.  
  626. function OleUIPasteSpecial(var Info: TOleUIPasteSpecial): Integer; stdcall;
  627.  
  628. { Paste Special specific flags }
  629.  
  630. const
  631.   {$EXTERNALSYM PSF_SHOWHELP}
  632.   PSF_SHOWHELP                    = $00000001;
  633.   {$EXTERNALSYM PSF_SELECTPASTE}
  634.   PSF_SELECTPASTE                 = $00000002;
  635.   {$EXTERNALSYM PSF_SELECTPASTELINK}
  636.   PSF_SELECTPASTELINK             = $00000004;
  637.   {$EXTERNALSYM PSF_CHECKDISPLAYASICON}
  638.   PSF_CHECKDISPLAYASICON          = $00000008;
  639.   {$EXTERNALSYM PSF_DISABLEDISPLAYASICON}
  640.   PSF_DISABLEDISPLAYASICON        = $00000010;
  641.   {$EXTERNALSYM PSF_HIDECHANGEICON}
  642.   PSF_HIDECHANGEICON              = $00000020;
  643.   {$EXTERNALSYM PSF_STAYONCLIPBOARDCHANGE}
  644.   PSF_STAYONCLIPBOARDCHANGE       = $00000040;
  645.   {$EXTERNALSYM PSF_NOREFRESHDATAOBJECT}
  646.   PSF_NOREFRESHDATAOBJECT         = $00000080;
  647.  
  648. { Paste Special specific error codes }
  649.  
  650. const
  651.   {$EXTERNALSYM OLEUI_IOERR_SRCDATAOBJECTINVALID}
  652.   OLEUI_IOERR_SRCDATAOBJECTINVALID   = OLEUI_ERR_STANDARDMAX + 0;
  653.   {$EXTERNALSYM OLEUI_IOERR_ARRPASTEENTRIESINVALID}
  654.   OLEUI_IOERR_ARRPASTEENTRIESINVALID = OLEUI_ERR_STANDARDMAX + 1;
  655.   {$EXTERNALSYM OLEUI_IOERR_ARRLINKTYPESINVALID}
  656.   OLEUI_IOERR_ARRLINKTYPESINVALID    = OLEUI_ERR_STANDARDMAX + 2;
  657.   {$EXTERNALSYM OLEUI_PSERR_CLIPBOARDCHANGED}
  658.   OLEUI_PSERR_CLIPBOARDCHANGED       = OLEUI_ERR_STANDARDMAX + 3;
  659.   {$EXTERNALSYM OLEUI_PSERR_GETCLIPBOARDFAILED}
  660.   OLEUI_PSERR_GETCLIPBOARDFAILED     = OLEUI_ERR_STANDARDMAX + 4;
  661.  
  662. { **** Edit Links dialog **** }
  663.  
  664. { IOleUILinkContainer interface
  665.  
  666.   This interface must be implemented by container applications that
  667.   want to use the EditLinks dialog. the EditLinks dialog calls back
  668.   to the container app to perform the OLE functions to manipulate
  669.   the links within the container. }
  670.  
  671. type
  672.   iOleUILinkContainer = interface(IUnknown)
  673.   ['{00000000-0000-0000-0000-000000000000}']  //!!!
  674.     function GetNextLink(dwLink: Longint): Longint; stdcall;
  675.     function SetLinkUpdateOptions(dwLink: Longint; dwUpdateOpt: Longint): HResult; stdcall;
  676.     function GetLinkUpdateOptions(dwLink: Longint;
  677.       var dwUpdateOpt: Longint): HResult; stdcall;
  678.     function SetLinkSource(dwLink: Longint; pszDisplayName: PChar;
  679.       lenFileName: Longint; var chEaten: Longint;
  680.       fValidateSource: BOOL): HResult; stdcall;
  681.     function GetLinkSource(dwLink: Longint; var pszDisplayName: PChar;
  682.       var lenFileName: Longint; var pszFullLinkType: PChar;
  683.       var pszShortLinkType: PChar; var fSourceAvailable: BOOL;
  684.       var fIsSelected: BOOL): HResult; stdcall;
  685.     function OpenLinkSource(dwLink: Longint): HResult; stdcall;
  686.     function UpdateLink(dwLink: Longint; fErrorMessage: BOOL;
  687.       fErrorAction: BOOL): HResult; stdcall;
  688.     function CancelLink(dwLink: Longint): HResult; stdcall;
  689.   end;
  690.  
  691. { TOleIUEditLinks structure }
  692.  
  693. type
  694.   POleUIEditLinks = ^TOleUIEditLinks;
  695.   {$EXTERNALSYM tagOLEUIEDITLINKSA}
  696.   tagOLEUIEDITLINKSA = record
  697.     cbStruct: Longint;                  { Structure Size }
  698.     dwFlags: Longint;                   { IN-OUT: Flags }
  699.     hWndOwner: HWnd;                    { Owning window }
  700.     lpszCaption: PChar;                 { Dialog caption bar contents }
  701.     lpfnHook: TFNOleUIHook;             { Hook callback }
  702.     lCustData: Longint;                 { Custom data to pass to hook }
  703.     hInstance: THandle;                 { Instance for customized template name }
  704.     lpszTemplate: PChar;                { Customized template name }
  705.     hResource: HRsrc;                   { Customized template handle }
  706.     OleUILinkContainer: IOleUILinkContainer; { IN: Interface to manipulate
  707.                                           links in the container }
  708.   end;
  709.   TOleUIEditLinks = tagOLEUIEDITLINKSA;
  710.  
  711. const
  712.   {$EXTERNALSYM OLEUI_ELERR_LINKCNTRNULL}
  713.   OLEUI_ELERR_LINKCNTRNULL    = OLEUI_ERR_STANDARDMAX + 0;
  714.   {$EXTERNALSYM OLEUI_ELERR_LINKCNTRINVALID}
  715.   OLEUI_ELERR_LINKCNTRINVALID = OLEUI_ERR_STANDARDMAX + 1;
  716.  
  717. {$EXTERNALSYM OleUIEditLinks}
  718. function OleUIEditLinks(var Info: TOleUIEditLinks): Integer; stdcall;
  719.  
  720. { Edit Links flags }
  721.  
  722. const
  723.   {$EXTERNALSYM ELF_SHOWHELP}
  724.   ELF_SHOWHELP                    = $00000001;
  725.   {$EXTERNALSYM ELF_DISABLEUPDATENOW}
  726.   ELF_DISABLEUPDATENOW            = $00000002;
  727.   {$EXTERNALSYM ELF_DISABLEOPENSOURCE}
  728.   ELF_DISABLEOPENSOURCE           = $00000004;
  729.   {$EXTERNALSYM ELF_DISABLECHANGESOURCE}
  730.   ELF_DISABLECHANGESOURCE         = $00000008;
  731.   {$EXTERNALSYM ELF_DISABLECANCELLINK}
  732.   ELF_DISABLECANCELLINK           = $00000010;
  733.  
  734. { **** Change Icon dialog **** }
  735.  
  736. type
  737.   POleUIChangeIcon = ^TOleUIChangeIcon;
  738.   {$EXTERNALSYM tagOLEUICHANGEICONA}
  739.   tagOLEUICHANGEICONA = record
  740.     cbStruct: Longint;                  { Structure Size }
  741.     dwFlags: Longint;                   { IN-OUT: Flags }
  742.     hWndOwner: HWnd;                    { Owning window }
  743.     lpszCaption: PChar;                 { Dialog caption bar contents }
  744.     lpfnHook: TFNOleUIHook;             { Hook callback }
  745.     lCustData: Longint;                 { Custom data to pass to hook }
  746.     hInstance: THandle;                 { Instance for customized template name }
  747.     lpszTemplate: PChar;                { Customized template name }
  748.     hResource: HRsrc;                   { Customized template handle }
  749.     hMetaPict: HGlobal;                 { IN-OUT: Current and final image.
  750.                                           Source of the icon is embedded in
  751.                                           the metafile itself }
  752.     clsid: TCLSID;                      { IN: class used to get Default icon }
  753.     szIconExe: array[0..MAX_PATH - 1] of Char; { IN: exlicit icon source path }
  754.     cchIconExe: Integer;                { IN: number of characters in szIconExe }
  755.   end;
  756.   TOleUIChangeIcon = tagOLEUICHANGEICONA;
  757.  
  758. {$EXTERNALSYM OleUIChangeIcon}
  759. function OleUIChangeIcon(var Info: TOleUIChangeIcon): Integer; stdcall;
  760.  
  761. { Change Icon flags }
  762.  
  763. const
  764.   {$EXTERNALSYM CIF_SHOWHELP}
  765.   CIF_SHOWHELP                    = $00000001;
  766.   {$EXTERNALSYM CIF_SELECTCURRENT}
  767.   CIF_SELECTCURRENT               = $00000002;
  768.   {$EXTERNALSYM CIF_SELECTDEFAULT}
  769.   CIF_SELECTDEFAULT               = $00000004;
  770.   {$EXTERNALSYM CIF_SELECTFROMFILE}
  771.   CIF_SELECTFROMFILE              = $00000008;
  772.   {$EXTERNALSYM CIF_USEICONEXE}
  773.   CIF_USEICONEXE                  = $00000010;
  774.  
  775. { Change Icon specific error codes }
  776.  
  777. const
  778.   {$EXTERNALSYM OLEUI_CIERR_MUSTHAVECLSID}
  779.   OLEUI_CIERR_MUSTHAVECLSID           = OLEUI_ERR_STANDARDMAX + 0;
  780.   {$EXTERNALSYM OLEUI_CIERR_MUSTHAVECURRENTMETAFILE}
  781.   OLEUI_CIERR_MUSTHAVECURRENTMETAFILE = OLEUI_ERR_STANDARDMAX + 1;
  782.   {$EXTERNALSYM OLEUI_CIERR_SZICONEXEINVALID}
  783.   OLEUI_CIERR_SZICONEXEINVALID        = OLEUI_ERR_STANDARDMAX + 2;
  784.  
  785. { Property used by ChangeIcon dialog to give its parent window access to
  786.   its hDlg. The PasteSpecial dialog may need to force the ChgIcon dialog
  787.   down if the clipboard contents change underneath it. If so it will send
  788.   a IDCANCEL command to the ChangeIcon dialog. }
  789.  
  790. const
  791.   {$EXTERNALSYM PROP_HWND_CHGICONDLG}
  792.   PROP_HWND_CHGICONDLG = 'HWND_CIDLG';
  793.  
  794. { **** Convert dialog **** }
  795.  
  796. type
  797.   POleUIConvert = ^TOleUIConvert;
  798.   {$EXTERNALSYM tagOLEUICONVERTA}
  799.   tagOLEUICONVERTA = record
  800.     cbStruct: Longint;                  { Structure Size }
  801.     dwFlags: Longint;                   { IN-OUT: Flags }
  802.     hWndOwner: HWnd;                    { Owning window }
  803.     lpszCaption: PChar;                 { Dialog caption bar contents }
  804.     lpfnHook: TFNOleUIHook;             { Hook callback }
  805.     lCustData: Longint;                 { Custom data to pass to hook }
  806.     hInstance: THandle;                 { Instance for customized template name }
  807.     lpszTemplate: PChar;                { Customized template name }
  808.     hResource: HRsrc;                   { Customized template handle }
  809.     clsid: TCLSID;                      { IN: Class ID sent in to dialog: IN only }
  810.     clsidConvertDefault: TCLSID;        { IN: use as convert default: IN only }
  811.     clsidActivateDefault: TCLSID;       { IN: use as activate default: IN only }
  812.     clsidNew: TCLSID;                   { OUT: Selected Class ID }
  813.     dvAspect: Longint;                  { IN-OUT: either DVASPECT_CONTENT or
  814.                                           DVASPECT_ICON }
  815.     wFormat: Word;                      { IN" Original data format }
  816.     fIsLinkedObject: BOOL;              { IN: true if object is linked }
  817.     hMetaPict: HGlobal;                 { IN-OUT: metafile icon image }
  818.     lpszUserType: PChar;                { IN-OUT: user type name of original class.
  819.                                           We'll do lookup if NULL. This gets freed
  820.                                           on exit }
  821.     fObjectsIconChanged: BOOL;          { OUT: TRUE == ChangeIcon was called }
  822.     lpszDefLabel: PChar;                { IN-OUT: default label to use for icon.
  823.                                           if NULL, the short user type name
  824.                                           will be used. if the object is a
  825.                                           link, the caller should pass the
  826.                                           DisplayName of the link source
  827.                                           This gets freed on exit }
  828.     cClsidExclude: Integer;             { IN: No. of CLSIDs in lpClsidExclude }
  829.     lpClsidExclude: PCLSID;             { IN: List of CLSIDs to exclude from list }
  830.   end;
  831.   TOleUIConvert = tagOLEUICONVERTA;
  832.  
  833. {$EXTERNALSYM OleUIConvert}
  834. function OleUIConvert(var Info: TOleUIConvert): Integer; stdcall;
  835.  
  836. { Determine if there is at least one class that can Convert or ActivateAs
  837.   the given clsid }
  838.  
  839. {$EXTERNALSYM OleUICanConvertOrActivateAs}
  840. function OleUICanConvertOrActivateAs(const clsid: TCLSID;
  841.   fIsLinkedObject: BOOL; wFormat: Word): BOOL; stdcall;
  842.  
  843. { Convert Dialog flags }
  844.  
  845. const
  846.   {$EXTERNALSYM CF_SHOWHELPBUTTON}
  847.   CF_SHOWHELPBUTTON               = $00000001;
  848.   {$EXTERNALSYM CF_SETCONVERTDEFAULT}
  849.   CF_SETCONVERTDEFAULT            = $00000002;
  850.   {$EXTERNALSYM CF_SETACTIVATEDEFAULT}
  851.   CF_SETACTIVATEDEFAULT           = $00000004;
  852.   {$EXTERNALSYM CF_SELECTCONVERTTO}
  853.   CF_SELECTCONVERTTO              = $00000008;
  854.   {$EXTERNALSYM CF_SELECTACTIVATEAS}
  855.   CF_SELECTACTIVATEAS             = $00000010;
  856.   {$EXTERNALSYM CF_DISABLEDISPLAYASICON}
  857.   CF_DISABLEDISPLAYASICON         = $00000020;
  858.   {$EXTERNALSYM CF_DISABLEACTIVATEAS}
  859.   CF_DISABLEACTIVATEAS            = $00000040;
  860.   {$EXTERNALSYM CF_HIDECHANGEICON}
  861.   CF_HIDECHANGEICON               = $00000080;
  862.   {$EXTERNALSYM CF_CONVERTONLY}
  863.   CF_CONVERTONLY                  = $00000100;
  864.  
  865. { Convert specific error codes }
  866.  
  867. const
  868.   {$EXTERNALSYM OLEUI_CTERR_CLASSIDINVALID}
  869.   OLEUI_CTERR_CLASSIDINVALID      = OLEUI_ERR_STANDARDMAX + 1;
  870.   {$EXTERNALSYM OLEUI_CTERR_DVASPECTINVALID}
  871.   OLEUI_CTERR_DVASPECTINVALID     = OLEUI_ERR_STANDARDMAX + 2;
  872.   {$EXTERNALSYM OLEUI_CTERR_CBFORMATINVALID}
  873.   OLEUI_CTERR_CBFORMATINVALID     = OLEUI_ERR_STANDARDMAX + 3;
  874.   {$EXTERNALSYM OLEUI_CTERR_HMETAPICTINVALID}
  875.   OLEUI_CTERR_HMETAPICTINVALID    = OLEUI_ERR_STANDARDMAX + 4;
  876.   {$EXTERNALSYM OLEUI_CTERR_STRINGINVALID}
  877.   OLEUI_CTERR_STRINGINVALID       = OLEUI_ERR_STANDARDMAX + 5;
  878.  
  879. { **** Busy dialog **** }
  880.  
  881. type
  882.   POleUIBusy = ^TOleUIBusy;
  883.   {$EXTERNALSYM tagOLEUIBUSYA}
  884.   tagOLEUIBUSYA = record
  885.     cbStruct: Longint;                  { Structure Size }
  886.     dwFlags: Longint;                   { IN-OUT: Flags }
  887.     hWndOwner: HWnd;                    { Owning window }
  888.     lpszCaption: PChar;                 { Dialog caption bar contents }
  889.     lpfnHook: TFNOleUIHook;             { Hook callback }
  890.     lCustData: Longint;                 { Custom data to pass to hook }
  891.     hInstance: THandle;                 { Instance for customized template name }
  892.     lpszTemplate: PChar;                { Customized template name }
  893.     hResource: HRsrc;                   { Customized template handle }
  894.     task: HTask;                        { IN: HTask which is blocking }
  895.     lphWndDialog: ^HWnd;                { IN: Dialog's HWND is placed here }
  896.   end;
  897.   TOleUIBusy = tagOLEUIBUSYA;
  898.  
  899. {$EXTERNALSYM OleUIBusy}
  900. function OleUIBusy(var Info: TOleUIBusy): Integer; stdcall;
  901.  
  902. { Flags for the Busy dialog }
  903.  
  904. const
  905.   {$EXTERNALSYM BZ_DISABLECANCELBUTTON}
  906.   BZ_DISABLECANCELBUTTON          = $00000001;
  907.   {$EXTERNALSYM BZ_DISABLESWITCHTOBUTTON}
  908.   BZ_DISABLESWITCHTOBUTTON        = $00000002;
  909.   {$EXTERNALSYM BZ_DISABLERETRYBUTTON}
  910.   BZ_DISABLERETRYBUTTON           = $00000004;
  911.   {$EXTERNALSYM BZ_NOTRESPONDINGDIALOG}
  912.   BZ_NOTRESPONDINGDIALOG          = $00000008;
  913.  
  914. { Busy specific error/return codes }
  915.  
  916. const
  917.   {$EXTERNALSYM OLEUI_BZERR_HTASKINVALID}
  918.   OLEUI_BZERR_HTASKINVALID     = OLEUI_ERR_STANDARDMAX + 0;
  919.   {$EXTERNALSYM OLEUI_BZ_SWITCHTOSELECTED}
  920.   OLEUI_BZ_SWITCHTOSELECTED    = OLEUI_ERR_STANDARDMAX + 1;
  921.   {$EXTERNALSYM OLEUI_BZ_RETRYSELECTED}
  922.   OLEUI_BZ_RETRYSELECTED       = OLEUI_ERR_STANDARDMAX + 2;
  923.   {$EXTERNALSYM OLEUI_BZ_CALLUNBLOCKED}
  924.   OLEUI_BZ_CALLUNBLOCKED       = OLEUI_ERR_STANDARDMAX + 3;
  925.  
  926. { **** Object Properties dialog **** }
  927.  
  928. type
  929.   iOleUIObjInfo = interface(IUnknown)
  930.   ['{00000000-0000-0000-0000-000000000000}'] //!!!
  931.     function GetObjectInfo(dwObject: Longint;
  932.       var dwObjSize: Longint; var lpszLabel: PChar;
  933.       var lpszType: PChar; var lpszShortType: PChar;
  934.       var lpszLocation: PChar): HResult; stdcall;
  935.     function GetConvertInfo(dwObject: Longint; var ClassID: TCLSID;
  936.       var wFormat: Word; var ConvertDefaultClassID: TCLSID;
  937.       var lpClsidExclude: PCLSID; var cClsidExclude: Longint): HResult; stdcall;
  938.     function ConvertObject(dwObject: Longint; const clsidNew: TCLSID): HResult; stdcall;
  939.     function GetViewInfo(dwObject: Longint; var hMetaPict: HGlobal;
  940.       var dvAspect: Longint; var nCurrentScale: Integer): HResult; stdcall;
  941.     function SetViewInfo(dwObject: Longint; hMetaPict: HGlobal;
  942.       dvAspect: Longint; nCurrentScale: Integer;
  943.       bRelativeToOrig: BOOL): HResult; stdcall;
  944.   end;
  945.  
  946. type
  947.   iOleUILinkInfo = interface(IOleUILinkContainer)
  948.   ['{00000000-0000-0000-0000-000000000000}']  //!!!
  949.     function GetLastUpdate(dwLink: Longint; var LastUpdate: TFileTime): HResult; stdcall;
  950.   end;
  951.  
  952. type
  953.   POleUIGnrlProps = ^TOleUIGnrlProps;
  954.   {$EXTERNALSYM tagOLEUIGNRLPROPSA}
  955.   tagOLEUIGNRLPROPSA = record
  956.     cbStruct: Longint;
  957.     dwFlags: Longint;
  958.     dwReserved1: array[1..2] of Longint;
  959.     lpfnHook: TFNOleUIHook;
  960.     lCustData: Longint;
  961.     dwReserved2: array[1..3] of Longint;
  962.     lpOP: Pointer;
  963.   end;
  964.   TOleUIGnrlProps = tagOLEUIGNRLPROPSA;
  965.   {$EXTERNALSYM OLEUIGNRLPROPS}
  966.   OLEUIGNRLPROPS = tagOLEUIGNRLPROPSA;
  967.  
  968. type
  969.   POleUIViewProps = ^TOleUIViewProps;
  970.   {$EXTERNALSYM tagOLEUIVIEWPROPSA}
  971.   tagOLEUIVIEWPROPSA = record
  972.     cbStruct: Longint;
  973.     dwFlags: Longint;
  974.     dwReserved1: array[1..2] of Longint;
  975.     lpfnHook: TFNOleUIHook;
  976.     lCustData: Longint;
  977.     dwReserved2: array[1..3] of Longint;
  978.     lpOP: Pointer;
  979.     nScaleMin: Integer;
  980.     nScaleMax: Integer;
  981.   end;
  982.   TOleUIViewProps = tagOLEUIVIEWPROPSA;
  983.   {$EXTERNALSYM OLEUIVIEWPROPS}
  984.   OLEUIVIEWPROPS = tagOLEUIVIEWPROPSA;
  985.  
  986. { Flags for TOleUIViewProps }
  987.  
  988. const
  989.   {$EXTERNALSYM VPF_SELECTRELATIVE}
  990.   VPF_SELECTRELATIVE          = $00000001;  { IN: relative to orig }
  991.   {$EXTERNALSYM VPF_DISABLERELATIVE}
  992.   VPF_DISABLERELATIVE         = $00000002;  { IN: disable relative to orig }
  993.   {$EXTERNALSYM VPF_DISABLESCALE}
  994.   VPF_DISABLESCALE            = $00000004;  { IN: disable scale option }
  995.  
  996. type
  997.   POleUILinkProps = ^TOleUILinkProps;
  998.   {$EXTERNALSYM tagOLEUILINKPROPSA}
  999.   tagOLEUILINKPROPSA = record
  1000.     cbStruct: Longint;
  1001.     dwFlags: Longint;
  1002.     dwReserved1: array[1..2] of Longint;
  1003.     lpfnHook: TFNOleUIHook;
  1004.     lCustData: Longint;
  1005.     dwReserved2: array[1..3] of Longint;
  1006.     lpOP: Pointer;
  1007.   end;
  1008.   TOleUILinkProps = tagOLEUILINKPROPSA;
  1009.   {$EXTERNALSYM OLEUILINKPROPS}
  1010.   OLEUILINKPROPS = tagOLEUILINKPROPSA;
  1011.  
  1012. type
  1013.   POleUIObjectProps = ^TOleUIObjectProps;
  1014.   {$EXTERNALSYM tagOLEUIOBJECTPROPSA}
  1015.   tagOLEUIOBJECTPROPSA = record
  1016.     cbStruct: Longint;          { Structure Size }
  1017.     dwFlags: Longint;           { IN-OUT: global flags for the sheet }
  1018.     lpPS: PPropSheetHeader;     { IN: property sheet header }
  1019.     dwObject: Longint;          { IN: identifier for the object }
  1020.     lpObjInfo: IOleUIObjInfo;   { IN: interface to manipulate object }
  1021.     dwLink: Longint;            { IN: identifier for the link }
  1022.     lpLinkInfo: IOleUILinkInfo; { IN: interface to manipulate link }
  1023.     lpGP: POleUIGnrlProps;      { IN: general page }
  1024.     lpVP: POleUIViewProps;      { IN: view page }
  1025.     lpLP: POleUILinkProps;      { IN: link page }
  1026.   end;
  1027.   TOleUIObjectProps = tagOLEUIOBJECTPROPSA;
  1028.   {$EXTERNALSYM OLEUIOBJECTPROPS}
  1029.   OLEUIOBJECTPROPS = tagOLEUIOBJECTPROPSA;
  1030.  
  1031. {$EXTERNALSYM OleUIObjectProperties}
  1032. function OleUIObjectProperties(var Info: TOleUIObjectProps): Integer; stdcall;
  1033.  
  1034. { Flags for OLEUIOBJECTPROPS }
  1035.  
  1036. const
  1037.   {$EXTERNALSYM OPF_OBJECTISLINK}
  1038.   OPF_OBJECTISLINK                = $00000001;
  1039.   {$EXTERNALSYM OPF_NOFILLDEFAULT}
  1040.   OPF_NOFILLDEFAULT               = $00000002;
  1041.   {$EXTERNALSYM OPF_SHOWHELP}
  1042.   OPF_SHOWHELP                    = $00000004;
  1043.   {$EXTERNALSYM OPF_DISABLECONVERT}
  1044.   OPF_DISABLECONVERT              = $00000008;
  1045.  
  1046. { Errors for OleUIObjectProperties }
  1047.  
  1048. const
  1049.   {$EXTERNALSYM OLEUI_OPERR_SUBPROPNULL}
  1050.   OLEUI_OPERR_SUBPROPNULL           = OLEUI_ERR_STANDARDMAX + 0;
  1051.   {$EXTERNALSYM OLEUI_OPERR_SUBPROPINVALID}
  1052.   OLEUI_OPERR_SUBPROPINVALID        = OLEUI_ERR_STANDARDMAX + 1;
  1053.   {$EXTERNALSYM OLEUI_OPERR_PROPSHEETNULL}
  1054.   OLEUI_OPERR_PROPSHEETNULL         = OLEUI_ERR_STANDARDMAX + 2;
  1055.   {$EXTERNALSYM OLEUI_OPERR_PROPSHEETINVALID}
  1056.   OLEUI_OPERR_PROPSHEETINVALID      = OLEUI_ERR_STANDARDMAX + 3;
  1057.   {$EXTERNALSYM OLEUI_OPERR_SUPPROP}
  1058.   OLEUI_OPERR_SUPPROP               = OLEUI_ERR_STANDARDMAX + 4;
  1059.   {$EXTERNALSYM OLEUI_OPERR_PROPSINVALID}
  1060.   OLEUI_OPERR_PROPSINVALID          = OLEUI_ERR_STANDARDMAX + 5;
  1061.   {$EXTERNALSYM OLEUI_OPERR_PAGESINCORRECT}
  1062.   OLEUI_OPERR_PAGESINCORRECT        = OLEUI_ERR_STANDARDMAX + 6;
  1063.   {$EXTERNALSYM OLEUI_OPERR_INVALIDPAGES}
  1064.   OLEUI_OPERR_INVALIDPAGES          = OLEUI_ERR_STANDARDMAX + 7;
  1065.   {$EXTERNALSYM OLEUI_OPERR_NOTSUPPORTED}
  1066.   OLEUI_OPERR_NOTSUPPORTED          = OLEUI_ERR_STANDARDMAX + 8;
  1067.   {$EXTERNALSYM OLEUI_OPERR_DLGPROCNOTNULL}
  1068.   OLEUI_OPERR_DLGPROCNOTNULL        = OLEUI_ERR_STANDARDMAX + 9;
  1069.   {$EXTERNALSYM OLEUI_OPERR_LPARAMNOTZERO}
  1070.   OLEUI_OPERR_LPARAMNOTZERO         = OLEUI_ERR_STANDARDMAX + 10;
  1071.   {$EXTERNALSYM OLEUI_GPERR_STRINGINVALID}
  1072.   OLEUI_GPERR_STRINGINVALID         = OLEUI_ERR_STANDARDMAX + 11;
  1073.   {$EXTERNALSYM OLEUI_GPERR_CLASSIDINVALID}
  1074.   OLEUI_GPERR_CLASSIDINVALID        = OLEUI_ERR_STANDARDMAX + 12;
  1075.   {$EXTERNALSYM OLEUI_GPERR_LPCLSIDEXCLUDEINVALID}
  1076.   OLEUI_GPERR_LPCLSIDEXCLUDEINVALID = OLEUI_ERR_STANDARDMAX + 13;
  1077.   {$EXTERNALSYM OLEUI_GPERR_CBFORMATINVALID}
  1078.   OLEUI_GPERR_CBFORMATINVALID       = OLEUI_ERR_STANDARDMAX + 14;
  1079.   {$EXTERNALSYM OLEUI_VPERR_METAPICTINVALID}
  1080.   OLEUI_VPERR_METAPICTINVALID       = OLEUI_ERR_STANDARDMAX + 15;
  1081.   {$EXTERNALSYM OLEUI_VPERR_DVASPECTINVALID}
  1082.   OLEUI_VPERR_DVASPECTINVALID       = OLEUI_ERR_STANDARDMAX + 16;
  1083.   {$EXTERNALSYM OLEUI_LPERR_LINKCNTRNULL}
  1084.   OLEUI_LPERR_LINKCNTRNULL          = OLEUI_ERR_STANDARDMAX + 17;
  1085.   {$EXTERNALSYM OLEUI_LPERR_LINKCNTRINVALID}
  1086.   OLEUI_LPERR_LINKCNTRINVALID       = OLEUI_ERR_STANDARDMAX + 18;
  1087.   {$EXTERNALSYM OLEUI_OPERR_PROPERTYSHEET}
  1088.   OLEUI_OPERR_PROPERTYSHEET         = OLEUI_ERR_STANDARDMAX + 19;
  1089.  
  1090. { wParam used by PSM_QUERYSIBLINGS }
  1091.  
  1092. const
  1093.   {$EXTERNALSYM OLEUI_QUERY_GETCLASSID}
  1094.   OLEUI_QUERY_GETCLASSID          = $FF00;  { override class id for icon }
  1095.   {$EXTERNALSYM OLEUI_QUERY_LINKBROKEN}
  1096.   OLEUI_QUERY_LINKBROKEN          = $FF01;  { after link broken }
  1097.  
  1098. implementation
  1099.  
  1100. const
  1101.   OleDlgDLL = 'oledlg.dll';
  1102.  
  1103. {$EXTERNALSYM OleUIAddVerbMenu}
  1104. function OleUIAddVerbMenu;              external OleDlgDLL name 'OleUIAddVerbMenuA';
  1105. {$EXTERNALSYM OleUIInsertObject}
  1106. function OleUIInsertObject;             external OleDlgDLL name 'OleUIInsertObjectA';
  1107. {$EXTERNALSYM OleUIPasteSpecial}
  1108. function OleUIPasteSpecial;             external OleDlgDLL name 'OleUIPasteSpecialA';
  1109. {$EXTERNALSYM OleUIEditLinks}
  1110. function OleUIEditLinks;                external OleDlgDLL name 'OleUIEditLinksA';
  1111. {$EXTERNALSYM OleUIChangeIcon}
  1112. function OleUIChangeIcon;               external OleDlgDLL name 'OleUIChangeIconA';
  1113. {$EXTERNALSYM OleUIConvert}
  1114. function OleUIConvert;                  external OleDlgDLL name 'OleUIConvertA';
  1115. {$EXTERNALSYM OleUICanConvertOrActivateAs}
  1116. function OleUICanConvertOrActivateAs;   external OleDlgDLL name 'OleUICanConvertOrActivateAs';
  1117. {$EXTERNALSYM OleUIBusy}
  1118. function OleUIBusy;                     external OleDlgDLL name 'OleUIBusyA';
  1119. {$EXTERNALSYM OleUIObjectProperties}
  1120. function OleUIObjectProperties;         external OleDlgDLL name 'OleUIObjectPropertiesA';
  1121.  
  1122. end.
  1123.